
package com.bstek.urule.runtime.agenda;

import com.bstek.urule.action.ActionValue;
import com.bstek.urule.model.rule.Rule;
import com.bstek.urule.model.rule.RuleInfo;
import com.bstek.urule.runtime.rete.Context;
import com.bstek.urule.runtime.rete.EvaluationContext;

import java.util.List;

/**
 * @author Jacky.gao
 * @since 2015年1月2日
 */
public interface Activation extends Comparable<Activation> {
    boolean isProcessed();

    Rule getRule();

    boolean reevaluate(Object obj, EvaluationContext context);

    boolean contain(Object obj);

    RuleInfo execute(Context context, List<RuleInfo> executedRules, List<ActionValue> actionValues);
}
